www.gusucode.com > PHP展示型企业网站模板米拓整站源码 1.0PHP源码程序 > PHP展示型企业网站模板米拓整站源码 1.0/MetInfozs_v1.0/MetInfozs_v1.0/app/system/include/function/str.func.php
<?php # MetInfo Enterprise Content Management System # Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved. defined('IN_MET') or exit('No permission'); /** * 字符串验证:URL * @param string $url 要验证的URL * @return boolean $flag 合法的URL返回true,否则返回false */ function is_url($url){ $flag = true; $patten = '/http:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is'; if(preg_match($patten, $url) == 0){ $flag = false; } return $flag; } /** * 字符串验证:email * @param string $email 要验证的URL * @return boolean $flag 合法的email返回true,否则返回false */ function is_email($email){ $flag = true; $patten = '/[\w-]+@[\w-]+\.[a-zA-Z\.]*[a-zA-Z]$/'; if(preg_match($patten, $email) == 0){ $flag = false; } return $flag; } /** * 字符串验证:数字 * @param string(int) $number 要验证的数字或字符串 * @return boolean $flag 是数字(数字字符串)返回true,否则返回false */ function is_number($number){ $flag = true; if(!is_numeric($number)){ $flag = false; } return $flag; } /** * 字符串验证:合法文件名 * @param string $filename 要验证的文件名 * @return boolean 合法的文件名返回true,否则返回false */ function is_filename($filename){ $error = array('/','\\',':','<','>','"','|','?','*'); foreach($error as $val){ if(is_strinclude($filename,$val)){ return false; } } return true; } /** * 字符串验证:手机 * @param string(int) $phone 要验证的手机号 * @return boolean $flag 合法的手机号返回true,否则返回false */ function is_phone($phone){ if(strlen($phone) == 11){ $flag = true; $patten = '/^1[3458]{1}\d{8}\d$/'; if(preg_match($patten, $phone) == 0){ $flag = false; } }else{ $flag = false; } return $flag; } /** * 字符串验证:是否为空 * @param string $str 要验证的字符串 * @return boolean $flag 字符串为空返回false,否则返回true */ function is_strempty($str){ $flag = true; if(empty($str)){ $flag = false; } return $flag; } /** * 字符串验证:长度 * @param string $str 要验证的字符串 * @param int $cnlen 中文字符计算方式,1:中文按1个字符计算,2:中文按2个字符计算 * @return int 返回字符串的长度 */ function str_length($str, $cnlen = 2){ $code = mb_detect_encoding($str, "ASCII, UTF-8, GB2312, GBK", true); if($cnlen == 1){ return mb_strlen($str, $code); }else{ return (strlen($str) + mb_strlen($str, $code)) / 2; } } /** * 字符串查找 * @param string $str 在该字符串中查找 * @param string $needle 指定验证的字符串 * @param int $type 0:不区分大小写,1:区分大小写。默认不区分大小写 * @return boolean $flag 包含有指定的字符串返回true 否则返回false */ function is_strinclude($str, $needle, $type = 0){ if(!$needle) return false; $flag = true; if(function_exists('stripos')){ if($type == 0){ if(stripos($str, $needle) === false){ $flag = false; } }else if($type == 1){ if(strpos($str, $needle) === false){ $flag = false; } } }else{ if($type == 0){ if(stristr($str, $needle) === false){ $flag = false; } }else if($type == 1){ if(strstr($str, $needle) === false){ $flag = false; } } } return $flag; } /** * 字符串截取(考虑中英文混排) * @param string $str 在该字符串中截取 * @param int $start 开始截取的位置,如果为负数则从字符串末尾截取出长度为(/$start/)的字符串。默认为0 * @param int $length 要截取的字符串长度(可选)只能为非负数 * @return string $newstr 返回截取后的字符串,失败时返回false */ function strcut($str, $start = 0, $length = ''){ $code = mb_detect_encoding($str, "ASCII,UTF-8,GB2312,GBK", true); $len = mb_strlen($str, $code); if($start > $len){ return false; } if(-$start > $len){ return $str; } if(empty($length) && $length !==0){ if($start < 0){ $length = -$start; $start = $len + $start; }else{ $length = $len - $start; } } if($length < 0){ return false; } $newstr = mb_substr($str, $start, $length, $code); return $newstr; } /** * 字符串编码转换 * @param string $str 要转换的字符串 * @param string $newcode 输出的字符集 * @param string $oldcode 输入的字符集 * @param int $type 0:字符转换不出时将被丢弃 1:字符转换不出时,它可以通过一个或多个形似的字符来近似表达。默认为0 * @return string $str 返回转换后的字符串 */ function change_code($str, $newcode, $oldcode = '', $type = 0){ $oldcode = $oldcode ? $oldcode : mb_detect_encoding($str, "ASCII,UTF-8,GB2312,GBK", true); $parameter = $type ==0 ? '//IGNORE' : '//TRANSLIT'; $str = iconv($oldcode, $newcode.$parameter, $str); return $str; } /** * 显示某一个时间相当于当前时间在多少秒前,多少分钟前,多少小时前,多少天前 * timeInt: 时间戳 * format: 时间显示格式 */ function timeFormat($timeInt,$format='Y-m-d H:i:s'){ if(empty($timeInt)||!is_numeric($timeInt)||!$timeInt){ return ''; } $d=time()-$timeInt; if($d<0){ return ''; }else{ if($d<60){ return $d.' 秒前'; }else{ if($d<3600){ return floor($d/60).' 分钟前'; }else{ if($d<86400){ return floor($d/3600).' 小时前'; }else{ if($d<259200){//3天内 return floor($d/86400).' 天前'; }else{ return date($format,$timeInt); } } } } } } # This program is an open source system, commercial use, please consciously to purchase commercial license. # Copyright (C) MetInfo Co., Ltd. (http://www.metinfo.cn). All rights reserved. ?>